﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using FastDATA;

namespace CursoUNICEUB
{
    public partial class CalendarioCurso : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                if (String.IsNullOrEmpty(Request.QueryString["Curso"]))
                    Util.showMessage(this, "Curso inválido", "Default.aspx");
                else
                    carregaCurso();
            }
        }

        void carregaCurso()
        {
            int idCurso;

            int.TryParse(Request.QueryString["Curso"], out idCurso);

            if (idCurso == 0)
                Util.showMessage(this, "Curso inválido", "Default.aspx");
            else
            {
                using (DCCursoDataContext banco = new DCCursoDataContext())
                {
                    List<DECalendarioDia> aulas = banco.DECalendarioDias.Where(q => q.DECalendario.CodigoCurso.Equals(idCurso)).ToList();
                    if (aulas == null || aulas.Count == 0)
                        Util.showMessage(this, "Não existe calendário cadastrado para este curso", "Default.aspx");
                    else
                    {
                        if (Util.verificarAdministrador(this.Context))
                        {
                            rptCalendarioAdministrador.DataSource = aulas;
                            rptCalendarioAdministrador.DataBind();
                        }
                        else
                        {
                            rptCalendarioAluno.DataSource = aulas;
                            rptCalendarioAluno.DataBind();
                        }
                    }
                }
            }
        }

        protected void btnSalvar_Click(object sender, EventArgs e)
        {
            try
            {
                if (Util.verificarAdministrador(this.Context))
                {
                    int codigo = Convert.ToInt32(((LinkButton)sender).CommandArgument);

                    foreach (RepeaterItem rptItem in rptCalendarioAdministrador.Controls)
                    {
                        foreach (Control ctrl in rptItem.Controls)
                        {
                            if (ctrl is TextBox)
                            {
                                TextBox txt = ((TextBox)ctrl);
                                string cod = txt.Attributes["Codigo"];

                                if (cod == codigo.ToString())
                                {
                                    using (DCCursoDataContext banco = new DCCursoDataContext())
                                    {
                                        DECalendarioDia aula = banco.DECalendarioDias.Single(q => q.Codigo.Equals(codigo));
                                        aula.Previsto = txt.Text;

                                        banco.SubmitChanges();
                                    }
                                    Util.showMessage(this, "Registro salvo com sucesso");

                                    return;
                                }
                            }
                        }
                    }
                }
                else
                    Util.showMessage(this, "Usuário não é administrador", "Default.aspx");
            }
            catch (Exception)
            {
                Util.showMessage(this, "Houve um erro ao salvar o calendário.");
            }
        }
    }
}